perm filename NYTST[NYT,SYS] blob sn#115916 filedate 1974-08-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE	NYTST
C00005 00003	LETTS TABLE
C00007 00004	FIGS TABLE
C00009 00005	SHIFT CONTROL
C00015 ENDMK
C⊗;
	TITLE	NYTST

A←1
CHAR←5
SHIFT←6
P←17

CR←←15 LF←←12

IBUF:	BLOCK	3

NYTST:	RESET
	INIT	17,410
	SIXBIT	/TTY13/
	IBUF
	JRST	[OUTSTR [ASCIZ /INIT FAILED ON TTY13
/]
		HALT	NYTST]
	MOVEI	A,000700	;BYTE SIZE OF 7 BITS PLEASE
	HRLM	A,IBUF+1	;INTO BYTE POINTER IN BUFFER HEADER
	TDZA	SHIFT,SHIFT
GETCH:	SOSG	IBUF+2		;any chars in AP buffer?
	IN	17,		;get some more news
	JRST	GETCH1
	OUTSTR	[ASCIZ/ IN UUO FAILED ON NY LINE
/]
	HALT	.

GETCH1:	ILDB	CHAR,IBUF+1	;get a char
	ANDI	CHAR,37
	ADD	CHAR,SHIFT	;SHIFT contains either 40 (octal) or zero
	XCT	CONVRT(CHAR)
CHAROK:	OUTCHR	CHAR
	JRST	GETCH		;return for next char
;LETTS TABLE
CONVRT:	JRST	GETCH		;0: tape feed
	MOVEI	CHAR,"E"	;1
	MOVEI	CHAR,LF		;2
	MOVEI	CHAR,"A"	;3
	MOVEI	CHAR," "	;4
	MOVEI	CHAR,"S"	;5
	MOVEI	CHAR,"I"	;6
	MOVEI	CHAR,"U"	;7
	MOVEI	CHAR,CR		;10
	MOVEI	CHAR,"D"	;11
	MOVEI	CHAR,"R"	;12
	MOVEI	CHAR,"J"	;13
	MOVEI	CHAR,"N"	;14
	MOVEI	CHAR,"F"	;15
	MOVEI	CHAR,"C"	;16
	MOVEI	CHAR,"K"	;17
	MOVEI	CHAR,"T"	;20
	MOVEI	CHAR,"Z"	;21
	MOVEI	CHAR,"L"	;22
	MOVEI	CHAR,"W"	;23
	MOVEI	CHAR,"H"	;24
	MOVEI	CHAR,"Y"	;25
	MOVEI	CHAR,"P"	;26
	MOVEI	CHAR,"Q"	;27
	MOVEI	CHAR,"O"	;30
	MOVEI	CHAR,"B"	;31
	MOVEI	CHAR,"G"	;32
	JRST	SETSHF		;33: shift
	MOVEI	CHAR,"M"	;34
	MOVEI	CHAR,"X"	;35
	MOVEI	CHAR,"V"	;36
	JRST	CLRSHF		;37: unshift
;FIGS TABLE
	JRST	GETCH		;40 NULL
	MOVEI	CHAR,"3"	;60
	MOVEI	CHAR,LF		;50
	MOVEI	CHAR,"-"	;70
	MOVEI	CHAR," "	;44
	JRST	GETCH		;64 BELL
	MOVEI	CHAR,"8"	;54
	MOVEI	CHAR,"7"	;74
	MOVEI	CHAR,CR		;42
	MOVEI	CHAR,"$"	;62
	MOVEI	CHAR,"4"	;52
	MOVEI	CHAR,47		;72 SGL QUOTE
	MOVEI	CHAR,","	;46
	MOVEI	CHAR,"!"	;66
	MOVEI	CHAR,":"	;56
	MOVEI	CHAR,"("	;76
	MOVEI	CHAR,"5"	;41
	MOVEI	CHAR,42		;61 DOUBLE QUOTE
	MOVEI	CHAR,")"	;51
	MOVEI	CHAR,"2"	;71
	JRST	GETCH		;45 START/STOP
	MOVEI	CHAR,"6"	;65
	MOVEI	CHAR,"0"	;55
	MOVEI	CHAR,"1"	;75
	MOVEI	CHAR,"9"	;43
	MOVEI	CHAR,"?"	;63
	MOVEI	CHAR,"&"	;53
	JRST	SETSHF		;73
	MOVEI	CHAR,"."	;47
	MOVEI	CHAR,"/"	;67
	MOVEI	CHAR,";"	;57
	JRST	CLRSHF		;77
;SHIFT CONTROL

SETSHF:	MOVEI	SHIFT,40
	JRST	GETCH
CLRSHF:	SETZM	SHIFT
	JRST	GETCH
	END	NYTST